\begin{frame}[t]{Aufgabe 3}
  \textit{Überlegen Sie sich ein Verfahren, wie Sie zu den Tracks in
    der Mediathek die passende KomponistIn in Ihrer Datenbasis finden
    können. Beachten Sie dabei, dass die Schreibweise der
    KomponistInnen in der Mediathek bzgl.  Vorhandensein, Reihenfolge
    und Abkürzung von Vor- und Nachnamen variieren kann.  Außerdem
    kann die KomponistIn auch in anderen Feldern als "Composer"
    stehen, eventuell als Teil-String (z.B. als Präfix im Feld
    "Title").}
\end{frame}

\begin{frame}[t]{Aufgabe 3 - Schematische Übersicht}
  \begin{figure}[htbp]
    \centering
    \includegraphics[width = .90\textwidth]{a3_ablauf}
  \end{figure}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Aufgabe 3 - \only<1>{XSLT oder }XQuery\only<1>{?}}
  Die Aufgabe kann ansatzweise (bei Eindeutigkeit der Zuweisung)
  folgendermaßen in SQL übersetzt werden:
  \begin{semiverbatim}
    \uncover<1->{\alert<4>{UPDATE Mediathek}}
    \uncover<1->{\alert<4>{SET ComposerUUID = (}}
    \uncover<1->{\alert<0>{  SELECT k.UUID}}
    \uncover<1->{\alert<0>{  FROM KomponistenListe k}}
    \uncover<1->{\alert<0>{  WHERE Mediathek.Name = k.Name)}}
    \uncover<1->{\alert<3>{WHERE EXISTS (}}
    \uncover<1->{\alert<0>{  SELECT *}}
    \uncover<1->{\alert<0>{  FROM KomponistenListe k}}
    \uncover<1->{\alert<2>{  WHERE Mediathek.Name = k.Name)}}
  \end{semiverbatim}
  \begin{center}
    \only<1>{\huge{$\Rightarrow$ XQuery}}
    \only<2>{\alert<2>{Teilaufgabe 1: Komponisten suchen und vergleichen}}
    \only<3>{\alert<3>{Teilaufgabe 2: Auf Existenz eines Komponisten prüfen}}
    \only<4>{\alert<4>{Teilaufgabe 3: Identifikator (UUID) suchen und
        eintragen}}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Aufgabe 3 - Lösungsansatz}
  \begin{enumerate}
  \item \textit{Suchen der Komponisteninformation in der Mediathek}
    \begin{itemize}
    \item Auf verschiedene Tags verteilt: Composer, Album, Name
    \item Album und Name enthalten zusätzlich noch Informationen über
      den Interpreten
    \item Dieser kann selbst wieder ein Komponist sein, aber nicht des
      aktuellen Tracks\\
      $\Rightarrow$ Zur Erhöhung der Genauigkeit wurden eigene Parser
      pro Tag verwendet
    \end{itemize}
  \item \textit{Vergleichen der Komponisteninformationen:}
    \begin{itemize}
    \item Der Informationsgehalt von Composer, Album und Name kann
      variieren
    \item Berücksichtigung von Initialen
    \item Regeln notwendig, die festlegen wann zwei Komponistennamen
      gleich sind
    \end{itemize}
  \item \textit{UUID in die Mediathek eintragen}
  \end{enumerate}
\end{frame}

\begin{frame}
  \frametitle{Aufgabe 3 - Sequenzdiagramm der Anwendung}
  \vspace{-4mm}
  \begin{figure}[htbp]
    \centering
    \begin{tikzpicture}
      \node(0, 0) {\includegraphics[width =0.95\textwidth]{a3_Sequenzdiagramm}}; 
      \uncover<2->{
        \draw[color = red, opacity = 0.6, line width = 1.5mm]
        (4.7, 3.2) ellipse (1cm and 0.5cm);
        \draw[color = red, opacity = 0.9]
        (4.7, 3.2) node {\huge 1};
      }
      \uncover<2->{
        \draw[color = red, opacity = 0.6, line width = 1.5mm]
        (3.8, -2) ellipse (1.5cm and 0.5cm);
        \draw[color = red, opacity = 0.9] (3.8, -2) node {\huge 2};
      }
    \end{tikzpicture}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Aufgabe 3 - Codebeispiele (parseAlbum)}
  \begin{figure}[htbp]
    \centering
    \includegraphics[width = \linewidth]{regularExpressions}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Aufgabe 3 - Codebeispiele (Gleichheitsregeln)}
  \begin{enumerate}
  \item Gleichheitstests durchführen
  \item Regeln definieren wann zwei Namen gleich sind
  \end{enumerate}
  \begin{figure}[htbp]
    \centering
    \includegraphics[width = \linewidth]{compareComposers}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Aufgabe 3 - Ergebnis und Interpretation}
  \begin{enumerate}
  \item \textit{Mehrfache UUIDs zu einem Komponisten:} Genau einer der
    angeführten Komponisten ist richtig
  \item \textit{Mehrfachte Assignments:} Mindestens eine Zuweisung
    beinhaltet den wahren Komponisten
  \end{enumerate}
  \begin{figure}[htbp]
    \vspace*{-5mm}
    \centering
    \includegraphics[width = \linewidth]{a3_assignments}
  \end{figure}
\end{frame}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../presentation"
%%% End: 
